<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>队列</title>
    <script src="./普通队列.js"></script>
    <script src="./优先级队列.js"></script>
</head>
<body>
    <script>
        //1.测试队列的方法
        let queue1 = new Queue();
        queue1.enqueue(1);
        queue1.enqueue(2);
        queue1.enqueue(3);
        queue1.enqueue(44);
        queue1.enqueue(5555);
        console.log(queue1);
        console.log(queue1.isEmpty());
        console.log(queue1.size());
        console.log(queue1.dequeue());
        console.log(queue1.toString());



        console.log('------------------------');
        // 2.队列算法题目：击鼓传花
        //规则：小米、小红、小绿、小蓝、小明、小黄、小A、小百几个人围成一圈，由一个人开始由0开始依次报数，
        // 报到某个数的人淘汰直到留下最后一个人时候，游戏结束，最后的这个人胜利，请问最后获胜这个人在原来的位置



        let nameList = ['小米','小红','小绿','小蓝','小明','小黄','小A','小百'];
        let num =4;
        function passGame(nameList,num) { 
            let queue2 = new Queue();
            //将每个人依次入队
            for(var i=0;i<nameList.length;i++){
                queue2.enqueue(nameList[i]);
            };
            //开始报数，在num数之前的人先在对首删除，在依次加入到对尾
            while(queue2.items.length>1){
                for(var i=0;i<num;i++){
                    queue2.enqueue(queue2.dequeue());
                };
                //遇到数字num直接删除
                queue2.dequeue();
            };
            //获取最后剩下的人
            let finalPeople = queue2.front();
            console.log('最后获胜的是：',finalPeople);
            // 返回最后获胜这个人在原来的位置
            return nameList.indexOf(finalPeople)
         }
         let res2 = passGame(nameList,num);
         console.log(`--${nameList[res2]}--${res2}-----`);




         console.log('------------------------');
         //3.测试优先级队列
         let priorityQueue1 = new PriorityQueue();
         priorityQueue1.enqueue('11',9);
         priorityQueue1.enqueue('22',8);
         priorityQueue1.enqueue('33',7);
         priorityQueue1.enqueue('44',6);
         console.log(priorityQueue1);
         priorityQueue1.enqueue('哈哈哈',8.5);
         console.log(priorityQueue1);

    </script>
    
</body>
</html>